package com.qixiaobao.nondirect.settle.service;

import com.qixiaobao.nondirect.settle.domain.InsureFee;
import com.qixiaobao.nondirect.settle.domain.dto.NonDirectWaitDTO;
import com.qixiaobao.nondirect.settle.domain.vo.NonDirectSettleWaitVO;
import com.qixiaobao.system.domain.Person;
import com.qixiaobao.system.domain.dto.CountDTO;
import com.qixiaobao.system.domain.dto.PersonDTO;

import java.util.List;

/**
 * @Description 非直接结算管理-待结算  业务层
 * @Author yangxm
 * @Date 2025/6/27 9:51
 */
public interface INonDirectWaitService {


    /**
     * 待结算列表
     * @param nonDirectWaitDTO
     * @return
     */
    List<NonDirectSettleWaitVO> selectWaitSettleList(NonDirectWaitDTO nonDirectWaitDTO);

    /**
     * @Description 直投结算管理-待结算 - 人员详情
     * @Author yangxm
     * @Date 2025/6/27 14:52
     * @param personDTO
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Person>
     */
    List<Person> selectWaitSettlePersonList(PersonDTO personDTO);

    /**
     * @Description 待结算-结算人数和费用总计统计
     * @Author yangxm
     * @Date 2025/6/27 15:02
     * @param nonDirectWaitDTO
     * @return com.qixiaobao.nondirect.invoice.domain.domain.dto.CountDto
     */
    CountDTO selectWaitSettleTotal(NonDirectWaitDTO nonDirectWaitDTO);

    /**
     * @Description 非直投结算管理-待结算 - 结算
     * @Author yangxm
     * @Date 2025/6/27 15:02
     * @param insureFee
     * @return int
     */
    int settle(InsureFee insureFee);

    /**
     * @Description 非直投结算管理-待结算 - 一键结算
     * @Author yangxm
     * @Date 2025/7/1 9:23
     * @param nonDirectWaitDTO
     * @return int
     */
    int settleAll(NonDirectWaitDTO nonDirectWaitDTO);
}
